在資料分析過程中,我們經常需要處理來自多個來源的資料,將它們整合在一起以進行進一步的分析。Pandas 提供了強大的工具來合併和連接不同的資料框(DataFrames)。今天,我們將學習如何使用 merge()
和 concat()
函數來將多個資料集整合在一起。
先在同一個資料夾裡面,建立一個檔案叫做merge
我們將使用兩個範例資料框來進行合併和連接的操作。
import pandas as pd
# 建立範例資料框 1
data1 = {'id': [1, 2, 3, 4],
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'score': [85, 90, 95, 80]}
df1 = pd.DataFrame(data1)
# 建立範例資料框 2
data2 = {'id': [3, 4, 5, 6],
'name': ['Charlie', 'David', 'Eve', 'Frank'],
'age': [23, 25, 22, 21]}
df2 = pd.DataFrame(data2)
# 顯示兩個資料框
print("資料框 1:")
print(df1)
print("\n資料框 2:")
print(df2)
以上程式碼建立了兩個範例資料框 df1
和 df2
,其中 id
欄位是共同的鍵值,其他欄位則有不同的資訊。
merge()
進行資料合併merge()
函數允許我們根據一個或多個鍵進行資料合併。常見的合併方式包括內連接、外連接、左連接和右連接。這裡我們根據 id
欄位進行合併。
# 使用內連接(inner join)進行合併
merged_inner = pd.merge(df1, df2, on='id', how='inner')
# 顯示結果
print("\n內連接結果(inner join):")
print(merged_inner)
內連接只會保留兩個資料框中 id
欄位匹配的資料。
# 使用外連接(outer join)進行合併
merged_outer = pd.merge(df1, df2, on='id', how='outer')
# 顯示結果
print("\n外連接結果(outer join):")
print(merged_outer)
外連接會保留所有資料,即使某些資料框中的 id
欄位不匹配,會填補缺失值。
# 使用左連接(left join)進行合併
merged_left = pd.merge(df1, df2, on='id', how='left')
# 顯示結果
print("\n左連接結果(left join):")
print(merged_left)
左連接會保留左邊資料框 df1
的所有資料,並補上右邊資料框 df2
中對應的資料。
# 使用右連接(right join)進行合併
merged_right = pd.merge(df1, df2, on='id', how='right')
# 顯示結果
print("\n右連接結果(right join):")
print(merged_right)
右連接則會保留右邊資料框 df2
的所有資料。
concat()
進行資料連接concat()
函數允許我們在行或列上將資料進行連接。我們可以用它來合併多個資料框,甚至將資料加在一起。
# 按列(axis=1)連接資料框
concatenated_columns = pd.concat([df1, df2], axis=1)
# 顯示結果
print("\n按列連接的結果:")
print(concatenated_columns)
這會將兩個資料框在列上連接,並保留所有資料。
# 按行(axis=0)連接資料框
concatenated_rows = pd.concat([df1, df2], axis=0, ignore_index=True)
# 顯示結果
print("\n按行連接的結果:")
print(concatenated_rows)
這會將兩個資料框在行上連接,並重新索引。
今天我們學習了如何使用 Pandas 進行資料的合併與連接,包括:
merge()
進行內連接、外連接、左連接和右連接concat()
進行資料的列或行連接這些技術非常有用,尤其是在處理來自不同資料來源的資料時。接下來,我們將學習如何進行資料的視覺化,為資料分析提供更直觀的解讀。